From bfbc4b64afb83713b6340efbd7adda3087bcc2f6 Mon Sep 17 00:00:00 2001 From: Roger Pau Monne Date: Thu, 28 Sep 2017 12:04:06 +0100 Subject: [PATCH] libxl: add is_default checkers for string and timer_mode types MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Those types are missing a helper to check whether a definition of the type holds the default value. This will be required by a later patch that will implement deprecation of fields inside of a libxl type. Signed-off-by: Roger Pau Monné Acked-by: Ian Jackson Acked-by: Wei Liu --- tools/libxl/idl.py | 3 ++- tools/libxl/libxl_internal.h | 10 ++++++++++ tools/libxl/libxl_types.idl | 3 ++- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/tools/libxl/idl.py b/tools/libxl/idl.py index 437049ebb9..a4a084e1ce 100644 --- a/tools/libxl/idl.py +++ b/tools/libxl/idl.py @@ -302,7 +302,8 @@ string = Builtin("char *", namespace = None, copy_fn = "libxl_string_copy", disp json_gen_fn = "libxl__string_gen_json", json_parse_type = "JSON_STRING | JSON_NULL", json_parse_fn = "libxl__string_parse_json", - autogenerate_json = False) + autogenerate_json = False, + check_default_fn="libxl__string_is_default") class Array(Type): """An array of the same type""" diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h index 8b71517340..e4c3c8853e 100644 --- a/tools/libxl/libxl_internal.h +++ b/tools/libxl/libxl_internal.h @@ -4359,6 +4359,16 @@ void* libxl__device_list(libxl__gc *gc, const struct libxl_device_type *dt, uint32_t domid, int *num); void libxl__device_list_free(const struct libxl_device_type *dt, void *list, int num); + +static inline bool libxl__timer_mode_is_default(libxl_timer_mode *tm) +{ + return *tm == LIBXL_TIMER_MODE_DEFAULT; +} + +static inline bool libxl__string_is_default(char **s) +{ + return *s == NULL; +} #endif /* diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl index dc3544873c..6b56954bc3 100644 --- a/tools/libxl/libxl_types.idl +++ b/tools/libxl/libxl_types.idl @@ -173,7 +173,8 @@ libxl_timer_mode = Enumeration("timer_mode", [ (1, "no_delay_for_missed_ticks"), (2, "no_missed_ticks_pending"), (3, "one_missed_tick_pending"), - ], init_val = "LIBXL_TIMER_MODE_DEFAULT") + ], init_val = "LIBXL_TIMER_MODE_DEFAULT", + check_default_fn = "libxl__timer_mode_is_default") libxl_bios_type = Enumeration("bios_type", [ (0, "unknown"), -- 2.30.2